<?php

class Application_Model_UzytkownicyMapper
{

    protected $_dbTable;
    protected $uzytkownicy;

    public function init()
    {
        $this->_dbTable = new Application_Model_DbTable_Uzytkownicy();
    }

    public function setDbTable($dbTable)
    {
        $dbTable = new $dbTable();

        if (!$dbTable instanceof Zend_Db_Table_Abstract)
        {
            throw new Exception('Invalid table data gateway provided');
        }

        $this->_dbTable = $dbTable;
        return $this;
    }

    public function getDbTable()
    {
        if (null == $this->_dbTable)
        {
            $this->setDbTable('Application_Model_DbTable_Uzytkownicy');
        }
        return $this->_dbTable;
    }

    public function nowyUzytkownik(Application_Model_Uzytkownicy $uzytkownik)
    {
        $data = array(
            'haslo' => $uzytkownik->getHaslo(),
            'imie' => $uzytkownik->getImie(),
            'nazwisko' => $uzytkownik->getNazwisko(),
            'adres' => $uzytkownik->getDataUr(),
            'miasto' => $uzytkownik->getMail(),
            'rola' => $uzytkownik->getRola()
        );

        $this->getDbTable()->insert($data);
        return $this->getDbTable()->getAdapter()->lastInsertId();
    }

    public function listaUzytkownikow()
    {
        $resultSet = $this->getDbTable()->fetchAll();

        $uzytkownicy = array();

        foreach ($resultSet as $row)
        {
            $uzytkownik = new Application_Model_Uzytkownicy();
            $studMapper = $row->findDependentRowset('Application_Model_DbTable_Nadawca');

            $uzytkownik->setIdUzytkownika($row->id_uzyt)
                    ->setImie($row->imie)
                    ->setNazwisko($row->nazwisko)
                    ->setMail($row->adres)
                    ->setRola($row->miasto)
                    ->setRola($row->rola);
            if ($row->rola == 1)
            {
                $uzytkownik->setRola('nadawca');
            }
            else if ($row->rola == 2)
            {
                $uzytkownik->setRola('kurier');
            }
            else if ($row->rola == 3)
            {
                $uzytkownik->setRola('magazyn');
            }
            $uzytkownicy[] = $uzytkownik;
        }
        return $uzytkownicy;
    }
/*
    public function edytujUzytkownika($id, Application_Model_Uzytkownicy $user, $znacznik)
    {
        if ($znacznik == 0)
        {
            $data = array(
                'haslo' => $user->getHaslo(),
                'imie' => $user->getImie(),
                'nazwisko' => $user->getNazwisko(),
                'data_urodzenia' => $user->getDataUr(),
                'mail' => $user->getMail(),
                'kierunek' => $user->getKierunek(),
                'nr_index' => $user->getNrIndex(),
            );
        }
        else if ($znacznik == 1)
        {
            $data = array(
                'haslo' => $user->getHaslo(),
                'imie' => $user->getImie(),
                'nazwisko' => $user->getNazwisko(),
            );
        }
        else if ($znacznik == 2)
        {
            $data = array(
                'haslo' => $user->getHaslo(),
                'imie' => $user->getImie(),
                'nazwisko' => $user->getNazwisko(),
            );
        }

        $where = $this->getDbTable()->getAdapter()->quoteInto('id_uzyt = ?', $id);
        $this->getDbTable()->update($data, $where);
    }
*/
    public function podajUzytkownika($id, Application_Model_Uzytkownicy $uzyt)
    {
        $resultSet = $this->getDbTable()->find($id);
        $row = $resultSet->current();
//$studMapper = $row->findDependentRowset('Application_Model_DbTable_Student');
        $uzyt->setIdUzytkownika($row->id_uzyt)
                ->setImie($row->imie)
                ->setNazwisko($row->nazwisko)
                ->setAdres($row->adres)
                ->setMiasto($row->miasto)
                ->setRola($row->rola);
        //            ->setNrIndex($studMapper->nr_index);
        if ($row->rola == 1)
        {
            $uzyt->setRola('student');
        }
        else if ($row->rola == 2)
        {
            $uzyt->setRola('pracownik');
        }
        else if ($row->rola == 3)
        {
            $uzyt->setRola('dziekanat');
        }
    }

    public function usunUzytkownika($id)
    {
        $where = $this->getDbTable()->getAdapter()->quoteInto('id_uzyt = ?', $id);
        $this->getDbTable()->delete($where);
    }

}

